<?php
//Zend_Debug::dump($_SESSION, 'Session in form creation');
class Users_IndexController extends Zend_Controller_Action
{
    public function init()
    {
     //mb_internal_encoding("UTF-8");
        $ajaxContext = $this->_helper->getHelper('AjaxContext');
        $ajaxContext->addActionContext('validate', 'json')
                    ->initContext();
    }

    public function indexAction()
    {
        Zend_Captcha_Word::$VN  = Zend_Captcha_Word::$CN = range(0,  9);
		$form=new Myblog_Form_Registration;		
		$this->view->form=$form;

        $config = array('ssl' => 'tls',
                        'port' => 587,
                        'auth' => 'login',
                        'username' => 'a.shandirov@gmail.com',
                        'password' => 'diasik2012');

        $transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);

        if($this->getRequest()->isPost() && $form->isValid($this->_getAllParams()))
        {
            $val=$form->getValues();
            $time = date('Y-m-d H:i:s');
            $token = sha1(uniqid($val['username'], true));

            $mail = new Zend_Mail('UTF-8');
            $mail->setFrom('admin', $this->getRequest()->getHttpHost());
            $mail->addTo($val['email'], $val['userlogin']);
            $mail->setSubject('Активация профиля.');
            $mail->setBodyText("
            ");
            $mail->setBodyHtml("

                <p>Здравствуйте уважаемый(я) <strong>".$val['userlogin']."</strong>,Вы получили это письмо,<br />
                потому что вы зарегистрировались на http://mysite.com или сменили e-mail в профиле.<br />
                Высылаем Ваш логин и ссылку для активации вашего профиля.<br />
                Логин: <strong>".$val['userlogin']."</strong><br />
                Ссылка для активации: http://".$this->getRequest()->getHttpHost()."/activate/".$token."</p>

            ");
            $mail->send($transport);
            $q=new Myblog_Model_Users;
            $q->avatar='images/avatars/noavatar92.png';
            $val['password']=sha1($val['password']);
            $q->role = 'user';
            $q->active = 0;
            $q->reg_time = $time;
            $q->fromArray($val);
            $q->save();

            $token_data = array('user_id'=>$q->id,'created_dt'=>$q->reg_time,'token'=>$token);
            $tokens = new Myblog_Model_Tokens();
            $tokens->fromArray($token_data);
            $tokens->save();

            if($mail){
                $this->_helper->getHelper('FlashMessenger')->addMessage('На вашу почту отправлена ссылка для активаций аккаунта.');
                $this->redirect('/user/registration/success');
            }else{
                $this->_helper->getHelper('FlashMessenger')->addMessage('Ошибка регистраций: Регистрация потерпела неудачу.Повторите позже');
                $this->redirect('/user/login/failed');//?
            }
        }
  }
	public function validateAction()
	{
			$f=new Myblog_Form_Registration;
			$f->isValidPartial($this->_getAllParams());
			$json=$f->getMessages();
            foreach($json as $v=>$k){
                $this->view->$v = $k;
            }
	}
	public function refreshAction()
	{
	$f=new Myblog_Form_Registration;
		$captcha = $f->getElement('captcha')->getCaptcha();
		$data = array();

        $data['id']  = $captcha->generate();
        $data['src'] = $captcha->getImgUrl() .
                       $captcha->getId() .
                       $captcha->getSuffix();

        $this->_helper->json($data);
	}
	
 	public function successAction()
    {

	if($this->_helper->getHelper('FlashMessenger')->getMessages()){
			$this->view->messages=$this->_helper
				->getHelper('FlashMessenger')->getMessages();
				$this->getResponse()->setHeader('Refresh','5; URL=/main');
				}else{
					$this->redirect('/main');
					}
    }
}